package it.unibo.refolding.pico;

import it.unibo.refolding.common.Sleeper;

public enum KnownSleepers {
  SYSTEM {
    @Override
    public Sleeper make(NanoDriver nanoDriver) {
      return Sleeper.SYSTEM_SLEEPER;
    }
  }, INSOMNIAC {
    @Override
    public Sleeper make(NanoDriver nanoDriver) {
      return Sleeper.INSOMNIAC;
    }
  }, NANO_DRIVER {
    @Override
    public Sleeper make(NanoDriver nanoDriver) {
      return new NanoDriverSleeper(nanoDriver);
    }
  };

  public abstract Sleeper make(NanoDriver nanoDriver);
}
